package com.doit.day02

import org.apache.kafka.clients.consumer.{ConsumerConfig, KafkaConsumer}
import redis.clients.jedis.Jedis

import java.sql.{Connection, DriverManager}
import java.util.Properties
import scala.math.pow

/**
 * 函数和方法一样：是一段代码逻辑的封装，便于复用
 * 函数的定义，函数的运行原理，和方法完全不一样
 */
object _04_函数 {
  def main(args: Array[String]): Unit = {

    println(add(1, 2))
    println(getMax(1, 2, 3))
    nineNineCFB(5)
    waterFlower()

    getMysql("localhost", "test", "root", "123456")


//    val funName = (函数的参数列表)=>{函数体}

  }

  //（）里面写函数的参数
  //{} 函数体
  //整一个两数相加的函数
  //没有名字的函数叫匿名函数
  val add = (a: Int, b: Int) => {
    a + b
  }


  //定义一个三个数求最大值的函数
  val getMax = (a: Int, b: Int, c: Int) => {
    var max = a
    if (max < b) max = b
    if (max < c) max = c
    max
  }

  //定义一个函数：穿进去int类型的一个值，这个值的范围是1-9，如果不是1-9，就打印，上课不好好听
  //如果在1-9的范围内，给的几，就打印99乘法表中到几
  val nineNineCFB = (a: Int) => {
    if (a >= 1 && a <= 9) {
      for (i <- 1 to a) {
        for (j <- 1 to i) {
          print(s"${i} * $j = ${i * j}\t")
        }
        println()
      }
    } else {
      println("滚蛋")
    }
  }


  //定义一个函数 找出所有三位数的水仙花数
  val waterFlower = () => {
    for (elem <- 100 to 999) {
      val ge = elem % 10
      val shi: Int = elem / 10 % 10
      val bai: Int = elem / 100 % 10
      if ((pow(ge, 3) + pow(shi, 3) + pow(bai, 3)).toInt == elem) {
        println(elem)
      }
    }

  }

  //定义一个函数  调用的时候可以穿进去主机名，库名，账号，密码，调用方法得到mysql的conn对象
  val getMysql = (host: String, database: String, userName: String, password: String) => {
    //获取mysql的连接对象
    DriverManager.getConnection("jdbc:mysql://" + host + ":3306/" + database + "", userName, password)
  }


  //定义一个函数   获取kafka消费者的连接对象



  //定义一个函数，获取redis的连接对象，传进去主机名和端口号


}
